#include "basic_allocator.hpp"
#include <iostream>

class MyClass
{
  public:
    MyClass() : data_(0)
    {
    }
    MyClass(int x) : data_(x)
    {
    }
    ~MyClass() = default;
    MyClass(const MyClass& lv) = default;
    MyClass(MyClass&& rv) = default;
    MyClass& operator=(const MyClass& lv) = default;
    MyClass& operator=(MyClass&& rv) = default;

    int data_;
};

using namespace std;
int main(int argc, char** argv)
{
    MyAllocator<MyClass> mya;
    MyAllocator<MyClass> myb;
    MyClass* ptra = mya.allocate(1);
    MyClass* ptrb = myb.allocate(1);
    cout << (*ptra).data_ << '\n';
    cout << (*ptrb).data_ << '\n';
    cout << boolalpha;
    cout << (mya == myb) << '\n';
    cout << (mya != myb) << '\n';
    mya.deallocate(ptrb, 1);
    myb.deallocate(ptra, 1);
    return 0;
}
